#pragma once
#include "RCMacros.h"
#include "RCInterfaces.h"

using namespace RCDX11;
using namespace DirectX;

namespace RCDX11
{
	class RCKeyboardStateManager : public IRCInputDevice, public IUpdateable
	{
	protected:
		LPDIRECTINPUTDEVICE8 keyboard;
		char keyboardState[256];

		bool Enabled;

	public:
		DECLDIR RCKeyboardStateManager(void);
		DECLDIR virtual ~RCKeyboardStateManager(void);

		DECLDIR virtual LPDIRECTINPUTDEVICE8 InitializeDevice(HWND hwnd);

		DECLDIR virtual char* getState();	
		DECLDIR virtual void Update(float time);
		DECLDIR virtual LPDIRECTINPUTDEVICE8 getDevice();

		DECLDIR virtual bool getEnabled();
		DECLDIR virtual void setEnabled(bool value);
	};

}